/**
 * 
 */
package com.lgCore.server.invok;

import com.lgCore.server.invok.invokBean.InvokRpcMethod;
import org.springframework.context.ApplicationContext;

/**
 * @author ligang
 *
 *  业务service外部调用，如路由，找方法
 *  1 从zk找到服务
 *  2 通过服务端内存找方法
 *  3 调用方法
 *  4 返回结果
 */
public interface ICommonRpcRouteService {

	/**
	 * 扫描包下的所有service接口类，并缓存service所有方法
	 * @param servicePack
	 * @param applicationContext spring上下文
	 */
	public void initServiceMethod(ApplicationContext applicationContext, String servicePack);

	/**
	 * 找到缓存里面的调用实体
	 * @param invokRpcMethod
	 * @return
	 * @throws Exception
	 */
	public InvokRpcMethod getInvokRpcMethod(InvokRpcMethod invokRpcMethod) throws Exception;

	/**
	 * 执行对应的方法
	 * @param
	 * @return
	 * @throws Exception
	 */
	public Object methodInvoke(InvokRpcMethod invokRpcMethod) throws Exception;

}
